#include <iostream>
#include <math.h>
using namespace std; 

// 这里利用的是四元数的指数公式：exp p=[cos∂ nsin∂]
int main(){
	float w, x, y, z;
	// w代表上面的cos∂
	w = 0.88f;
	// x,y,z代表上面的n的三个分量，他们之间的变换关系可以用sin值的比获取
	x = 1.0f;
	y = 1.0f;
	z = 1.0f;
	float exponent;
	exponent = 0.5f;
	if(fabs(w) < .9999f){
		// 提取半角alpha (alpha=theta/2)
		float alpha = acos(w);
		// 计算新的alpha值
		float newAlpha = alpha * exponent;
		// 计算新的w值
		w = cos(newAlpha);
		// 计算新的xyz值
		float mult = sin(newAlpha) / sin(alpha);
		x *= mult;
		y *= mult;
		z *= mult;
	}
	cout<<w<<endl;
	cout<<x<<endl;
	cout<<y<<endl;
	cout<<z<<endl;
}